/**
 * 2010(c) Copyright Oceansoft Information System Co.,LTD. All rights reserved.
 * <p>
 * Compile: JDK 1.6+
 * <p>
 * 版权所有(C)：江苏欧索软件有限公司
 * <p>
 * 公司名称：江苏欧索软件有限公司
 * <p>
 * 公司地址：中国苏州科技城青山路1号
 * <p>
 * 网址: http://www.oceansoft.com.cn
 * <p>
 * 版本: 苏州公安统一用户管理平台1.0
 * <p>
 * 作者: 090922(陈伟)
 * <p>
 * 文件名:IUUMSRoleService.java
 * <p>
 * 类产生时间: 2012-7-11 下午2:26:22
 * <p>
 * 负责人: 090922(陈伟)
 * <p>
 * Email:javacspring@gmail.com
 * <p>
 * 所在组 : 苏州公安统一用户管理平台
 * <p>
 * 所在部门: 电信/国土——技术二部
 * <p>
 * <p>
 */
package com.oceansoft.core.service;

import java.util.List;
import java.util.Map;

import com.oceansoft.core.common.util.Pagination;
import com.oceansoft.core.domain.Message;
import com.oceansoft.core.domain.RoleResource;
import com.oceansoft.core.domain.SysRole;
import com.oceansoft.core.domain.SysUser;

/**
 * 
 * @author chenw
 * 
 */
public interface IUUMSRoleService {

	/**
	 * 分页查询系统角色信息
	 * 
	 * @param pageIndex
	 * @return
	 */
	Pagination<SysRole> findRolesByPage(int pageIndex);

	/**
	 * 加载用户权限
	 * 
	 * @param policeNum
	 * @return 权限集合
	 */
	Map<String, Object> findRoleByUser(String policeNum);

	/**
	 * 加载所有拥有指定角色用户信息
	 * 
	 * @param roleId
	 *            角色编号
	 * @return 拥有指定角色用户集合
	 */
	List<SysUser> findUsersByRoleId(String roleId);

	/**
	 * 保存系统用户角色信息
	 * 
	 * @param roleId
	 * @param userIds
	 * @return
	 */
	Message saveRoleUserData(String roleId, String[] userIds);

	/**
	 * 按条件分页查询系统角色信息
	 * 
	 * @param pageIndex
	 * @return
	 */
	Pagination<SysRole> findRolesByPage(SysRole condition, int pageIndex);

	/**
	 * 查询指定角色信息
	 * 
	 * @param roleId
	 * @return
	 */
	SysRole findRoleById(String roleId);

	/**
	 * 保存角色信息
	 * 
	 * @param role
	 */
	int saveOrUpdateRole(SysRole role);

	void saveRoleResource(RoleResource roleResource);

	/**
	 * 删除系统角色信息
	 * 
	 * @param roleId
	 * @return
	 */
	Message deleteSysRoleRById(String roleId);
    /**
     * 查询所有角色
     * @return
     */
	List<SysRole> findAllRoles();
    /**
     * 根据警号查询出他所具备的角色
     * @param policeNum
     * @return
     */
	List<SysRole> findRoles(String policeNum);
	/**
     * 授权单个人角色
     * @param userid
     * @param roleId
     * @return
     */
	Message plusAddRoleToUser(String userid, String roleId);
}
